package constants

// 系统错误码定义
// 所有错误码从1001开始
const (
	// 通用错误码 (1001-1099)
	ErrUnknown = 1001 // 未知错误

	// 签名验证错误码 (1101-1199)
	ErrSignatureInvalid    = 1101 // 签名无效
	ErrSignatureExpired    = 1102 // 签名过期
	ErrSignatureMissParams = 1103 // 缺少必要参数

	// 认证授权错误码 (1201-1299)
	ErrAuthCheckTokenFail    = 1201 // Token验证失败
	ErrAuthCheckTokenTimeout = 1202 // Token已过期
	ErrAuthToken             = 1203 // Token生成失败
	ErrAuth                  = 1204 // 认证失败

	// 角色相关错误码 (1301-1399)
	ErrCharacterExists       = 1301 // 角色已存在
	ErrCharacterCreate       = 1302 // 角色创建失败
	ErrCharacterNotExist     = 1303 // 角色不存在
	ErrCharacterUpdate       = 1304 // 角色更新失败
	ErrCharacterModuleUpdate = 1305 // 角色模块更新失败

	// 支付相关错误码 (1401-1499)
	ErrOrderCreate = 1401 // 订单创建失败
	ErrOrderQuery  = 1402 // 订单查询失败
	ErrOrderUpdate = 1403 // 订单更新失败
)

// 错误码对应的错误信息
var ErrMsg = map[int]string{
	// 通用错误信息
	ErrUnknown: "未知错误",

	// 签名验证错误信息
	ErrSignatureInvalid:    "签名无效",
	ErrSignatureExpired:    "签名已过期",
	ErrSignatureMissParams: "缺少必要参数",

	// 认证授权错误信息
	ErrAuthCheckTokenFail:    "Token验证失败",
	ErrAuthCheckTokenTimeout: "Token已过期",
	ErrAuthToken:             "Token生成失败",
	ErrAuth:                  "认证失败",

	// 角色相关错误信息
	ErrCharacterExists:       "角色已存在",
	ErrCharacterCreate:       "角色创建失败",
	ErrCharacterNotExist:     "角色不存在",
	ErrCharacterUpdate:       "角色更新失败",
	ErrCharacterModuleUpdate: "角色模块更新失败",

	// 支付相关错误信息
	ErrOrderCreate: "订单创建失败",
	ErrOrderQuery:  "订单查询失败",
	ErrOrderUpdate: "订单更新失败",
}

// GetErrMsg 获取错误信息
func GetErrMsg(code int) string {
	msg, ok := ErrMsg[code]
	if ok {
		return msg
	}
	return ErrMsg[ErrUnknown]
}
